home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 10
/
AACD 10.iso
/
AACD
/
Programming
/
AmigaTalk
/
Intuition
/
Menu.st
< prev
next >
Wrap
Text File
|
2000-05-02
|
7KB
|
256 lines
"---------------------------------------------------"
" Menu Class implements control of Amiga Menus "
" except for actually displaying it, which is in the"
" Window class. "
"---------------------------------------------------"
Class Menu :Glyph
!
nextMenu leftEdge topEdge width height flags menuName firstItem
!
[
getStartPoint
leftEdge <- <primitive 182 2 0 0 menuName>.
topEdge <- <primitive 182 2 1 0 menuName>.
^ leftEdge @ topEdge
|
getMenuSize
width <- <primitive 182 2 2 0 menuName>.
height <- <primitive 182 2 3 0 menuName>.
^ width @ height
|
setStartPoint: newPoint ! x y !
x <- newPoint x.
y <- newPoint y.
<primitive 182 3 0 x 0 menuName>.
<primitive 182 3 1 y 0 menuName>.
leftEdge <- x.
topEdge <- y
|
setMenuSize: sizePoint ! w h !
w <- sizePoint x.
h <- sizePoint y.
<primitive 182 3 2 w 0 menuName>.
<primitive 182 3 3 h 0 menuName>.
width <- w.
height <- h
|
remove
<primitive 182 0 0 menuName>
|
registerTo: windowTitle
<primitive 182 4 windowTitle menuName>
|
getFlags
^ flags <- <primitive 182 2 4 0 menuName>
|
setFlags: newFlags
<primitive 182 3 4 newFlags 0 menuName>.
flags <- newFlags
|
getNextMenu
^ nextMenu <- <primitive 182 2 8 0 menuName>
|
setNextMenu: newNextMenu
<primitive 182 3 8 newNextMenu 0 menuName>.
nextMenu <- newNextMenu
|
getFirstItem
^ firstItem <- <primitive 182 2 9 0 menuName>
|
setFirstItem: newFirstItem
<primitive 182 3 9 newFirstItem 0 menuName>.
firstItem <- newFirstItem
|
getMenuName
^ menuName <- <primitive 182 2 13 0 menuName>
|
setMenuName: newMenuName
<primitive 182 3 13 newMenuName 0 menuName>.
menuName <- newMenuName
|
new: newMenuName
<primitive 182 1 0 newMenuName>.
menuName <- newMenuName.
^ self
]
Class MenuItem :Menu
!
nextItem leftEdge topEdge width height flags mutualExclude
itemFill selectFill command subItem nextSelect itemName
!
[
remove
<primitive 182 0 1 itemName>
|
registerTo: windowTitle
<primitive 182 4 windowTitle itemName>
|
getStartPoint
leftEdge <- <primitive 182 2 0 1 itemName>.
topEdge <- <primitive 182 2 1 1 itemName>.
^ leftEdge @ topEdge
|
getItemSize
width <- <primitive 182 2 2 1 itemName>.
height <- <primitive 182 2 3 1 itemName>.
^ width @ height
|
setStartPoint: newPoint ! x y !
x <- newPoint x.
y <- newPoint y.
<primitive 182 3 0 x 1 itemName>.
<primitive 182 3 1 y 1 itemName>.
leftEdge <- x.
topEdge <- y
|
setItemSize: sizePoint ! w h !
w <- sizePoint x.
h <- sizePoint y.
<primitive 182 3 2 w 1 itemName>.
<primitive 182 3 3 h 1 itemName>.
width <- w.
height <- h
|
getFlags
^ flags <- <primitive 182 2 4 1 itemName>
|
setFlags: newFlags
<primitive 182 3 4 newFlags 1 itemName>.
flags <- newFlags
|
getMutualExclude
^ mutualExclude <- <primitive 182 2 5 1 itemName>
|
setMutualExclude: newMutualExclude
<primitive 182 3 5 newMutualExclude 1 itemName>.
mutualExclude <- newMutualExclude
|
getCommand
^ command <- <primitive 182 2 6 1 itemName>
|
setCommand: newCommand
<primitive 182 3 6 newCommand 1 itemName>.
command <- newCommand
|
getNextItem
^ nextItem <- <primitive 182 2 7 1 itemName>
|
setNextItem: newNextItem
<primitive 182 3 7 newNextItem 1 itemName>.
nextItem <- newNextItem
|
getItemFill
^ itemFill <- <primitive 182 2 10 1 itemName>
|
setItemFill: newItemFill
<primitive 182 3 10 newItemFill 1 itemName>.
itemFill <- newItemFill
|
getSelectFill
^ selectFill <- <primitive 182 2 11 1 itemName>
|
setSelectFill: newSelectFill
<primitive 182 3 11 newSelectFill 1 itemName>.
selectFill <- newSelectFill
|
getSubItem
^ subItem <- <primitive 182 2 12 1 itemName>
|
setSubItem: newSubItem
<primitive 182 3 12 newSubItem 1 itemName>.
subItem <- newSubItem
|
new: newItemName
<primitive 182 1 1 newItemName>.
itemName <- newItemName.
^ self
]
Class SubItem :MenuItem
!
nextItem leftEdge topEdge width height flags mutualExclude
itemFill selectFill command nextSelect subItemName
!
[
remove
<primitive 182 0 2 subItemName>
|
registerTo: windowTitle
<primitive 182 4 windowTitle subItemName>
|
getStartPoint
leftEdge <- <primitive 182 2 0 2 subItemName>.
topEdge <- <primitive 182 2 1 2 subItemName>.
^ leftEdge @ topEdge
|
getSubSize
width <- <primitive 182 2 2 2 subItemName>.
height <- <primitive 182 2 3 2 subItemName>.
^ width @ height
|
setStartPoint: newPoint ! x y !
x <- newPoint x.
y <- newPoint y.
<primitive 182 3 0 x 2 subItemName>.
<primitive 182 3 1 y 2 subItemName>.
leftEdge <- x.
topEdge <- y
|
setSubSize: sizePoint ! w h !
w <- sizePoint x.
h <- sizePoint y.
<primitive 182 3 2 w 2 subItemName>.
<primitive 182 3 3 h 2 subItemName>.
width <- w.
height <- h
|
getFlags
^ flags <- <primitive 182 2 4 2 subItemName>
|
setFlags: newFlags
<primitive 182 3 4 newFlags 2 subItemName>.
flags <- newFlags
|
getMutualExclude
^ mutualExclude <- <primitive 182 2 5 2 subItemName>
|
setMutualExclude: newMutualExclude
<primitive 182 3 5 newMutualExclude 2 subItemName>.
mutualExclude <- newMutualExclude
|
getCommand
^ command <- <primitive 182 2 6 2 subItemName>
|
setCommand: newCommand
<primitive 182 3 6 newCommand 2 subItemName>.
command <- newCommand
|
getNextItem
^ nextItem <- <primitive 182 2 7 2 subItemName>
|
setNextItem: newNextItem
<primitive 182 3 7 newNextItem 2 subItemName>.
nextItem <- newNextItem
|
getItemFill
^ itemFill <- <primitive 182 2 10 2 subItemName>
|
setItemFill: newItemFill
<primitive 182 3 10 newItemFill 2 subItemName>.
itemFill <- newItemFill
|
getSelectFill
^ selectFill <- <primitive 182 2 11 2 subItemName>
|
setSelectFill: newSelectFill
<primitive 182 3 11 newSelectFill 2 subItemName>.
selectFill <- newSelectFill
|
new: newSubItemName
<primitive 182 1 2 newSubItemName>.
subItemName <- newSubItemName.
^ self
]